Chapter 6 Diversity analysis
6.1 Alpha diversity
# Calculate Hill numbers
richness <- genome_counts_filt %>%
column_to_rownames(var = "genome") %>%
dplyr::select(where(~ !all(. == 0))) %>%
hilldiv(., q = 0) %>%
t() %>%
as.data.frame() %>%
dplyr::rename(richness = 1) %>%
rownames_to_column(var = "sample")
neutral <- genome_counts_filt %>%
column_to_rownames(var = "genome") %>%
dplyr::select(where(~ !all(. == 0))) %>%
hilldiv(., q = 1) %>%
t() %>%
as.data.frame() %>%
dplyr::rename(neutral = 1) %>%
rownames_to_column(var = "sample")
phylogenetic <- genome_counts_filt %>%
column_to_rownames(var = "genome") %>%
dplyr::select(where(~ !all(. == 0))) %>%
hilldiv(., q = 1, tree = genome_tree) %>%
t() %>%
as.data.frame() %>%
dplyr::rename(phylogenetic = 1) %>%
rownames_to_column(var = "sample")
# Aggregate basal GIFT into elements
dist <- genome_gifts %>%
to.elements(., GIFT_db3) %>%
traits2dist(., method = "gower")
functional <- genome_counts_filt %>%
column_to_rownames(var = "genome") %>%
dplyr::select(where(~ !all(. == 0))) %>%
hilldiv(., q = 1, dist = dist) %>%
t() %>%
as.data.frame() %>%
dplyr::rename(functional = 1) %>%
rownames_to_column(var = "sample") %>%
mutate(functional = if_else(is.nan(functional), 1, functional))
# Merge all metrics
alpha_div <- richness %>%
full_join(neutral, by = join_by(sample == sample)) %>%
full_join(phylogenetic, by = join_by(sample == sample)) %>%
full_join(functional, by = join_by(sample == sample))6.1.1 Wild samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="0_Wild") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = Population, group=Population, color=Population, fill=Population)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#008080', "#d57d2c")) +
scale_fill_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#00808050', "#d57d2c50")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.58) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.2 Acclimation samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="1_Acclimation") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = Population, group=Population, color=Population, fill=Population)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#008080', "#d57d2c")) +
scale_fill_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#00808050', "#d57d2c50")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.58) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.3 Antibiotics samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="2_Antibiotics") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = Population, group=Population, color=Population, fill=Population)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#008080', "#d57d2c")) +
scale_fill_manual(name="Population",
breaks=c("Cold_wet","Hot_dry"),
labels=c("Cold","Hot"),
values=c('#00808050', "#d57d2c50")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.58) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.4 Transplant_1 samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="3_Transplant1") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = type, group=type, color=type, fill=type)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c", "#76b183")) +
scale_fill_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA50","#d57d2c50","#76b18350")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.7) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.5 Transplant_2 samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="4_Transplant2") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = type, group=type, color=type, fill=type)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c", "#76b183")) +
scale_fill_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA50","#d57d2c50","#76b18350")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.7) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.6 Post-Transplant_1 samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="5_Post-FMT1") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = type, group=type, color=type, fill=type)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c", "#76b183")) +
scale_fill_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-Cold","Hot-Hot", "Cold-Hot"),
values=c("#4477AA50","#d57d2c50","#76b18350")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.7) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.1.7 Post-Transplant_2 samples
alpha_div %>%
pivot_longer(-sample, names_to = "metric", values_to = "value") %>%
left_join(., sample_metadata, by = join_by(sample == Tube_code)) %>%
filter(time_point=="6_Post-FMT2") %>%
mutate(metric=factor(metric,levels=c("richness","neutral","phylogenetic","functional"))) %>%
ggplot(aes(y = value, x = type, group=type, color=type, fill=type)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(alpha=0.5) +
scale_color_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-control","Warm-control", "Cold-intervention"),
values=c("#4477AA","#d57d2c", "#76b183")) +
scale_fill_manual(name="Type",
breaks=c("Control","Hot_control", "Treatment"),
labels=c("Cold-control","Warm-control", "Cold-intervention"),
values=c("#4477AA50","#d57d2c50","#76b18350")) +
facet_wrap(. ~ metric,scales = "free") +
coord_cartesian(xlim = c(1, NA)) +
stat_compare_means(size=3, label.x=.7) +
theme_classic() +
theme(
strip.background = element_blank(),
panel.grid.minor.x = element_line(size = .1, color = "grey"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=10),
axis.text.x = element_text(angle = 45, hjust = 1),
# Increase plot size
plot.title = element_text(size = 10),
axis.text = element_text(size = 8),
axis.title = element_text(size = 8)
) +
ylab("Alpha diversity")6.2 Beta diversity
beta_q0n <- genome_counts_filt %>%
column_to_rownames(., "genome") %>%
hillpair(., q = 0)
beta_q1n <- genome_counts_filt %>%
column_to_rownames(., "genome") %>%
hillpair(., q = 1)
beta_q1p <- genome_counts_filt %>%
column_to_rownames(., "genome") %>%
hillpair(., q = 1, tree = genome_tree)
beta_q1f <- genome_counts_filt %>%
column_to_rownames(., "genome") %>%
hillpair(., q = 1, dist = dist)6.3 Permanovas
6.3.1 1. Are the wild populations similar?
6.3.1.1 Wild: P.muralis vs P.liolepis
wild <- meta %>%
filter(time_point == "0_Wild")
# Create a temporary modified version of genome_counts_filt
temp_genome_counts <- transform(genome_counts_filt, row.names = genome_counts_filt$genome)
temp_genome_counts$genome <- NULL
wild.counts <- temp_genome_counts[, which(colnames(temp_genome_counts) %in% rownames(wild))]
identical(sort(colnames(wild.counts)), sort(as.character(rownames(wild))))
wild_nmds <- sample_metadata %>%
filter(time_point == "0_Wild")6.3.1.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.000012 0.000012 0.0012 999 0.979
Residuals 25 0.257281 0.010291
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.981
Hot_dry 0.97302
adonis2(formula=beta_div_richness_wild$S ~ Population, data=wild[labels(beta_div_richness_wild$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 1.542719 | 0.2095041 | 6.625717 | 0.001 |
| Residual | 25 | 5.820951 | 0.7904959 | NA | NA |
| Total | 26 | 7.363669 | 1.0000000 | NA | NA |
6.3.1.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.000048 0.0000476 0.0044 999 0.945
Residuals 25 0.270114 0.0108046
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.946
Hot_dry 0.94763
adonis2(formula=beta_div_neutral_wild$S ~ Population, data=wild[labels(beta_div_neutral_wild$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 1.918266 | 0.2608511 | 8.822682 | 0.001 |
| Residual | 25 | 5.435610 | 0.7391489 | NA | NA |
| Total | 26 | 7.353876 | 1.0000000 | NA | NA |
6.3.1.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.03585 0.035847 2.4912 999 0.108
Residuals 25 0.35973 0.014389
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.125
Hot_dry 0.12705
adonis2(formula=beta_div_phylo_wild$S ~ Population, data=wild[labels(beta_div_phylo_wild$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 0.3218613 | 0.2162815 | 6.899207 | 0.001 |
| Residual | 25 | 1.1662981 | 0.7837185 | NA | NA |
| Total | 26 | 1.4881594 | 1.0000000 | NA | NA |
6.3.1.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.019387 0.019387 1.653 999 0.216
Residuals 25 0.293200 0.011728
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.221
Hot_dry 0.21033
adonis2(formula=beta_div_func_wild$S ~ Population, data=wild[labels(beta_div_func_wild$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 0.0831048 | 0.1680538 | 5.05002 | 0.036 |
| Residual | 25 | 0.4114083 | 0.8319462 | NA | NA |
| Total | 26 | 0.4945131 | 1.0000000 | NA | NA |
beta_q0n_nmds_wild <- beta_div_richness_wild$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE, trace=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(wild_nmds, by = join_by(sample == Tube_code))
beta_q1n_nmds_wild <- beta_div_neutral_wild$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE, trace=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(wild_nmds, by = join_by(sample == Tube_code))
beta_q1p_nmds_wild <- beta_div_phylo_wild$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(wild_nmds, by = join_by(sample == Tube_code))
beta_q1f_nmds_wild <- beta_div_func_wild$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(wild_nmds, by = join_by(sample == Tube_code))6.3.2 2. Effect of acclimation
accli <- meta %>%
filter(time_point == "1_Acclimation")
# Create a temporary modified version of genome_counts_filt
temp_genome_counts <- transform(genome_counts_filt, row.names = genome_counts_filt$genome)
temp_genome_counts$genome <- NULL
accli.counts <- temp_genome_counts[, which(colnames(temp_genome_counts) %in% rownames(accli))]
identical(sort(colnames(accli.counts)), sort(as.character(rownames(accli))))
accli_nmds <- sample_metadata %>%
filter(time_point == "1_Acclimation")6.3.2.1 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.11796 0.117959 12.963 999 0.002 **
Residuals 25 0.22748 0.009099
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.004
Hot_dry 0.0013711
adonis2(formula=beta_div_richness_accli$S ~ Population, data=accli[labels(beta_div_richness_accli$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 1.639807 | 0.179834 | 5.481634 | 0.001 |
| Residual | 25 | 7.478640 | 0.820166 | NA | NA |
| Total | 26 | 9.118447 | 1.000000 | NA | NA |
6.3.2.2 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.07844 0.078443 5.2384 999 0.026 *
Residuals 25 0.37437 0.014975
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.026
Hot_dry 0.030815
adonis2(formula=beta_div_neutral_accli$S ~ Population, data=accli[labels(beta_div_neutral_accli$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 1.947003 | 0.2306127 | 7.493387 | 0.001 |
| Residual | 25 | 6.495736 | 0.7693873 | NA | NA |
| Total | 26 | 8.442739 | 1.0000000 | NA | NA |
6.3.2.3 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.06739 0.067395 2.9532 999 0.105
Residuals 25 0.57052 0.022821
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.103
Hot_dry 0.098068
adonis2(formula=beta_div_phylo_accli$S ~ Population, data=accli[labels(beta_div_phylo_accli$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 0.2441653 | 0.1224638 | 3.488854 | 0.014 |
| Residual | 25 | 1.7496100 | 0.8775362 | NA | NA |
| Total | 26 | 1.9937754 | 1.0000000 | NA | NA |
6.3.2.4 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.02351 0.023513 0.635 999 0.457
Residuals 25 0.92569 0.037028
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Cold_wet Hot_dry
Cold_wet 0.446
Hot_dry 0.43303
adonis2(formula=beta_div_func_accli$S ~ Population, data=accli[labels(beta_div_func_accli$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 1 | 0.0279416 | 0.024809 | 0.6360037 | 0.452 |
| Residual | 25 | 1.0983283 | 0.975191 | NA | NA |
| Total | 26 | 1.1262699 | 1.000000 | NA | NA |
beta_q0n_nmds_accli <- beta_div_richness_accli$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE, trace=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli_nmds, by = join_by(sample == Tube_code))
beta_q1n_nmds_accli <- beta_div_neutral_accli$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE, trace=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli_nmds, by = join_by(sample == Tube_code))
beta_q1p_nmds_accli <- beta_div_phylo_accli$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli_nmds, by = join_by(sample == Tube_code))
beta_q1f_nmds_accli <- beta_div_func_accli$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
vegan::scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli_nmds, by = join_by(sample == Tube_code))6.3.3 3. Comparison between Wild and Acclimation
accli1 <- meta %>%
filter(time_point == "0_Wild" | time_point == "1_Acclimation")
temp_genome_counts <- transform(genome_counts_filt, row.names = genome_counts_filt$genome)
temp_genome_counts$genome <- NULL
accli1.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(accli1))]
identical(sort(colnames(accli1.counts)),sort(as.character(rownames(accli1))))
accli1_nmds <- sample_metadata %>%
filter(time_point == "0_Wild" | time_point == "1_Acclimation")6.3.3.0.1 Number of samples used
[1] 54
6.3.3.0.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.05014 0.050145 6.2252 999 0.015 *
Residuals 52 0.41886 0.008055
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
0_Wild 1_Acclimation
0_Wild 0.021
1_Acclimation 0.015808
adonis2(formula=beta_div_richness_accli1$S ~ time_point*Population, data=accli1[labels(beta_div_richness_accli1$S),], permutations=999, strata=accli1$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 3.799791 | 0.222218 | 4.761789 | 0.002 |
| Residual | 50 | 13.299591 | 0.777782 | NA | NA |
| Total | 53 | 17.099381 | 1.000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_richness_accli1$S,accli1_arrange$Population_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Cold_wet.1_Acclimation vs Hot_dry.1_Acclimation | 1 | 1.6398067 | 5.481634 | 0.17983399 | 0.001 | 0.006 | * |
| Cold_wet.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.5861897 | 2.045106 | 0.05673741 | 0.003 | 0.018 | . |
| Cold_wet.1_Acclimation vs Hot_dry.0_Wild | 1 | 1.5524421 | 4.967864 | 0.16577304 | 0.001 | 0.006 | * |
| Hot_dry.1_Acclimation vs Cold_wet.0_Wild | 1 | 1.8259388 | 8.319131 | 0.24968031 | 0.001 | 0.006 | * |
| Hot_dry.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.3856333 | 1.736034 | 0.09788177 | 0.007 | 0.042 | . |
| Cold_wet.0_Wild vs Hot_dry.0_Wild | 1 | 1.5427188 | 6.625717 | 0.20950408 | 0.001 | 0.006 | * |
6.3.3.0.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.0199 0.0199035 2.1213 999 0.155
Residuals 52 0.4879 0.0093827
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
0_Wild 1_Acclimation
0_Wild 0.164
1_Acclimation 0.15128
adonis2(formula=beta_div_neutral_accli1$S ~ time_point*Population, data=accli1[labels(beta_div_neutral_accli1$S),], permutations=999, strata=accli1$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 4.770321 | 0.2856195 | 6.663569 | 0.001 |
| Residual | 50 | 11.931346 | 0.7143805 | NA | NA |
| Total | 53 | 16.701667 | 1.0000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_neutral_accli1$S,accli1_arrange$Population_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Cold_wet.1_Acclimation vs Hot_dry.1_Acclimation | 1 | 1.9470028 | 7.493387 | 0.23061269 | 0.001 | 0.006 | * |
| Cold_wet.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.8152517 | 3.211984 | 0.08631584 | 0.001 | 0.006 | * |
| Cold_wet.1_Acclimation vs Hot_dry.0_Wild | 1 | 2.1302445 | 7.742971 | 0.23647735 | 0.001 | 0.006 | * |
| Hot_dry.1_Acclimation vs Cold_wet.0_Wild | 1 | 2.0371666 | 10.078295 | 0.28730857 | 0.001 | 0.006 | * |
| Hot_dry.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.6314393 | 3.060027 | 0.16054681 | 0.001 | 0.006 | * |
| Cold_wet.0_Wild vs Hot_dry.0_Wild | 1 | 1.9182663 | 8.822682 | 0.26085105 | 0.001 | 0.006 | * |
6.3.3.0.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.01334 0.013340 0.6524 999 0.4
Residuals 52 1.06332 0.020449
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
0_Wild 1_Acclimation
0_Wild 0.393
1_Acclimation 0.42294
adonis2(formula=beta_div_phylo_accli1$S ~ time_point*Population, data=accli1[labels(beta_div_phylo_accli1$S),], permutations=999, strata=accli1$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 0.855070 | 0.2267502 | 4.887385 | 0.001 |
| Residual | 50 | 2.915908 | 0.7732498 | NA | NA |
| Total | 53 | 3.770978 | 1.0000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_phylo_accli1$S,accli1_arrange$Population_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Cold_wet.1_Acclimation vs Hot_dry.1_Acclimation | 1 | 0.2441653 | 3.488854 | 0.1224638 | 0.025 | 0.150 | |
| Cold_wet.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.2949378 | 4.881474 | 0.1255475 | 0.001 | 0.006 | * |
| Cold_wet.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.3992196 | 4.442501 | 0.1508874 | 0.006 | 0.036 | . |
| Hot_dry.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.2121479 | 7.924059 | 0.2406769 | 0.001 | 0.006 | * |
| Hot_dry.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.2092433 | 3.885515 | 0.1953942 | 0.001 | 0.006 | * |
| Cold_wet.0_Wild vs Hot_dry.0_Wild | 1 | 0.3218613 | 6.899207 | 0.2162815 | 0.001 | 0.006 | * |
6.3.3.0.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.01264 0.012640 0.4951 999 0.476
Residuals 52 1.32764 0.025532
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
0_Wild 1_Acclimation
0_Wild 0.495
1_Acclimation 0.4848
adonis2(formula=beta_div_func_accli1$S ~ time_point*Population, data=accli1[labels(beta_div_func_accli1$S),], permutations=999, strata=accli1$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 0.1558147 | 0.0935514 | 1.720109 | 0.313 |
| Residual | 50 | 1.5097366 | 0.9064486 | NA | NA |
| Total | 53 | 1.6655513 | 1.0000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_func_accli1$S,accli1_arrange$Population_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Cold_wet.1_Acclimation vs Hot_dry.1_Acclimation | 1 | 0.027941631 | 0.6360037 | 0.02480900 | 0.435 | 1.000 | |
| Cold_wet.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.018947902 | 0.4777313 | 0.01385623 | 0.494 | 1.000 | |
| Cold_wet.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.145480076 | 3.6909571 | 0.12864531 | 0.057 | 0.342 | |
| Hot_dry.1_Acclimation vs Cold_wet.0_Wild | 1 | 0.002523515 | 0.1203153 | 0.00478956 | 0.611 | 1.000 | |
| Hot_dry.1_Acclimation vs Hot_dry.0_Wild | 1 | 0.040973276 | 4.0663305 | 0.20264445 | 0.098 | 0.588 | |
| Cold_wet.0_Wild vs Hot_dry.0_Wild | 1 | 0.083104797 | 5.0500195 | 0.16805378 | 0.054 | 0.324 |
beta_richness_nmds_accli1 <- beta_div_richness_accli1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli1_nmds, by = c("sample" = "Tube_code"))
beta_neutral_nmds_accli1 <- beta_div_neutral_accli1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli1_nmds, by = c("sample" = "Tube_code"))
beta_phylo_nmds_accli1 <- beta_div_phylo_accli1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli1_nmds, by = join_by(sample == Tube_code))
beta_func_nmds_accli1 <- beta_div_func_accli1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(accli1_nmds, by = join_by(sample == Tube_code))6.3.4 4. Effect of FMT on microbiota community
6.3.4.1 Comparison between Acclimation vs Post-FMT1
post3 <- meta %>%
filter(time_point == "1_Acclimation" | time_point == "5_Post-FMT1")
temp_genome_counts <- transform(genome_counts_filt, row.names = genome_counts_filt$genome)
temp_genome_counts$genome <- NULL
post3.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(post3))]
identical(sort(colnames(post3.counts)),sort(as.character(rownames(post3))))
post3_nmds <- sample_metadata %>%
filter(time_point == "1_Acclimation" | time_point == "5_Post-FMT1")6.3.4.1.1 Number of samples used
[1] 53
6.3.4.1.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.099607 0.049803 9.5441 999 0.001 ***
Residuals 50 0.260911 0.005218
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.00200000 0.890
Hot_control 0.00102653 0.002
Treatment 0.88832670 0.00010131
adonis2(formula=beta_div_richness_post3$S ~ time_point*type, data=post3[labels(beta_div_neutral_post3$S),], permutations=999,strata=post3$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 4.403362 | 0.2369995 | 2.919782 | 0.001 |
| Residual | 47 | 14.176268 | 0.7630005 | NA | NA |
| Total | 52 | 18.579631 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_richness_post3$S, post3_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.3620815 | 1.052109 | 0.06169963 | 0.361 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.2800877 | 4.605444 | 0.22350616 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.6845657 | 1.998114 | 0.11101796 | 0.004 | 0.060 | |
| Control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.8437461 | 2.499232 | 0.14281954 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 1.1208022 | 3.568670 | 0.18236649 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.3606630 | 5.087152 | 0.24124415 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.7216200 | 2.172734 | 0.11956009 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.9551308 | 2.926054 | 0.16322910 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 1.2263345 | 4.039487 | 0.20157637 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 1.4319792 | 5.384836 | 0.25180628 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.8172413 | 3.194690 | 0.17558364 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.5796135 | 2.441615 | 0.13239702 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.5615418 | 1.729004 | 0.10335366 | 0.017 | 0.255 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.8438429 | 2.793772 | 0.14865413 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.3734921 | 1.268929 | 0.07799710 | 0.115 | 1.000 |
6.3.4.1.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.00945 0.0094472 1.1428 999 0.295
Residuals 51 0.42161 0.0082669
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 5_Post-FMT1
1_Acclimation 0.286
5_Post-FMT1 0.2901
adonis2(formula=beta_div_neutral_post3$S ~ time_point*type, data=post3[labels(beta_div_neutral_post3$S),], permutations=999,strata=post3$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 5.302354 | 0.3027004 | 4.080576 | 0.001 |
| Residual | 47 | 12.214484 | 0.6972996 | NA | NA |
| Total | 52 | 17.516838 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_neutral_post3$S, post3_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.2316020 | 0.7712905 | 0.04598874 | 0.698 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.4015347 | 5.7562378 | 0.26457873 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.8332162 | 2.9081103 | 0.15380227 | 0.003 | 0.045 | . |
| Control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 1.1719595 | 4.0685514 | 0.21336447 | 0.002 | 0.030 | . |
| Control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 1.4260875 | 5.2413171 | 0.24675104 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.6347704 | 6.8326887 | 0.29925029 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.9517634 | 3.3715700 | 0.17404733 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 1.3127773 | 4.6298256 | 0.23585668 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 1.6713369 | 6.2395460 | 0.28056085 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 1.5409781 | 6.8338056 | 0.29928456 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.9133614 | 4.0964534 | 0.21451383 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.6954835 | 3.2951234 | 0.17077493 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.6051778 | 2.2508491 | 0.13047758 | 0.022 | 0.330 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 1.0528902 | 4.1436369 | 0.20570451 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.4150076 | 1.6372683 | 0.09840968 | 0.046 | 0.690 |
6.3.4.1.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.05132 0.051320 2.6745 999 0.112
Residuals 51 0.97861 0.019189
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 5_Post-FMT1
1_Acclimation 0.107
5_Post-FMT1 0.10812
adonis2(formula=beta_div_phylo_post3$S ~ time_point*type, data=post3[labels(beta_div_phylo_post3$S),], permutations=999,strata=post3$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 0.7935087 | 0.2278753 | 2.774199 | 0.004 |
| Residual | 47 | 2.6886978 | 0.7721247 | NA | NA |
| Total | 52 | 3.4822065 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_phylo_post3$S, post3_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.04186923 | 0.4391642 | 0.02671451 | 0.724 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.15609416 | 2.5546889 | 0.13768428 | 0.034 | 0.510 | |
| Control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.19193367 | 2.9749922 | 0.15678490 | 0.017 | 0.255 | |
| Control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.14627288 | 1.7907381 | 0.10665035 | 0.154 | 1.000 | |
| Control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.25061348 | 3.6146185 | 0.18428187 | 0.008 | 0.120 | |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.23108846 | 4.0521838 | 0.20208192 | 0.002 | 0.030 | . |
| Treatment.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.26358465 | 4.3608960 | 0.21417997 | 0.003 | 0.045 | . |
| Treatment.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.25319427 | 3.2738422 | 0.17915456 | 0.039 | 0.585 | |
| Treatment.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.39050120 | 5.9837393 | 0.27218933 | 0.002 | 0.030 | . |
| Hot_control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.14203376 | 5.4200212 | 0.25303529 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.09666753 | 2.3682173 | 0.13635351 | 0.014 | 0.210 | |
| Hot_control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.09252600 | 2.9824958 | 0.15711821 | 0.007 | 0.105 | |
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.01842535 | 0.4144162 | 0.02688498 | 0.778 | 1.000 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.05987967 | 1.7387847 | 0.09802164 | 0.119 | 1.000 | |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.03212966 | 0.6477782 | 0.04139746 | 0.686 | 1.000 |
6.3.4.1.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.00554 0.0055401 0.2063 999 0.668
Residuals 51 1.36938 0.0268505
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 5_Post-FMT1
1_Acclimation 0.658
5_Post-FMT1 0.65159
adonis2(formula=beta_div_func_post3$S ~ time_point*type, data=post3[labels(beta_div_func_post3$S),], permutations=999,strata=post3$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 0.2935075 | 0.1510442 | 1.672425 | 0.046 |
| Residual | 47 | 1.6496826 | 0.8489558 | NA | NA |
| Total | 52 | 1.9431901 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_func_post3$S, post3_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.090583070 | 1.66462866 | 0.094235135 | 0.206 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.086181392 | 1.63467278 | 0.092696519 | 0.213 | 1.000 | |
| Control.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.028641941 | 0.50417680 | 0.030548437 | 0.528 | 1.000 | |
| Control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.234795406 | 4.03037749 | 0.211786524 | 0.037 | 0.555 | |
| Control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.134726259 | 2.20299547 | 0.121023788 | 0.164 | 1.000 | |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.001022590 | 0.05430389 | 0.003382513 | 0.645 | 1.000 | |
| Treatment.1_Acclimation vs Control.5_Post-FMT1 | 1 | 0.002157067 | 0.09411569 | 0.005847832 | 0.615 | 1.000 | |
| Treatment.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.056602363 | 2.56037069 | 0.145803909 | 0.179 | 1.000 | |
| Treatment.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.009569124 | 0.35095521 | 0.021463896 | 0.503 | 1.000 | |
| Hot_control.1_Acclimation vs Control.5_Post-FMT1 | 1 | -0.001745663 | -0.08225018 | -0.005167199 | 0.746 | 1.000 | |
| Hot_control.1_Acclimation vs Treatment.5_Post-FMT1 | 1 | 0.057758674 | 2.84545622 | 0.159449901 | 0.159 | 1.000 | |
| Hot_control.1_Acclimation vs Hot_control.5_Post-FMT1 | 1 | 0.005575266 | 0.21803560 | 0.013444020 | 0.542 | 1.000 | |
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.119540855 | 4.84764704 | 0.244242909 | 0.058 | 0.870 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.052587837 | 1.77308932 | 0.099762584 | 0.226 | 1.000 | |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.012980354 | 0.44307662 | 0.028690955 | 0.479 | 1.000 |
beta_richness_nmds_post3 <- beta_div_richness_post3$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post3_nmds, by = c("sample" = "Tube_code"))
beta_neutral_nmds_post3 <- beta_div_neutral_post3$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post3_nmds, by = c("sample" = "Tube_code"))
beta_phylo_nmds_post3 <- beta_div_phylo_post3$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post3_nmds, by = join_by(sample == Tube_code))
beta_func_nmds_post3 <- beta_div_func_post3$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post3_nmds, by = join_by(sample == Tube_code))6.3.4.2 Comparison between Acclimation vs Post-FMT2
post4 <- meta %>%
filter(time_point == "1_Acclimation" | time_point == "6_Post-FMT2")
temp_genome_counts <- transform(genome_counts_filt, row.names = genome_counts_filt$genome)
temp_genome_counts$genome <- NULL
post4.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(post4))]
identical(sort(colnames(post4.counts)),sort(as.character(rownames(post4))))
post4_nmds <- sample_metadata %>%
filter(time_point == "1_Acclimation" | time_point == "6_Post-FMT2")6.3.4.2.1 Number of samples used
[1] 54
6.3.4.2.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.06809 0.034047 3.8471 999 0.027 *
Residuals 51 0.45135 0.008850
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.0430000 0.912
Hot_control 0.0349385 0.005
Treatment 0.8855174 0.0047257
adonis2(formula=beta_div_richness_post4$S ~ time_point*Population, data=post4[labels(beta_div_neutral_post4$S),], permutations=999,strata=post4$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 3.310172 | 0.1883377 | 3.867324 | 0.001 |
| Residual | 50 | 14.265560 | 0.8116623 | NA | NA |
| Total | 53 | 17.575732 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_richness_post4$S, post4_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.3620815 | 1.052109 | 0.06169963 | 0.356 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.2800877 | 4.605444 | 0.22350616 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.8430295 | 2.845779 | 0.15100353 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.5232174 | 1.683240 | 0.09518843 | 0.023 | 0.345 | |
| Control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 1.1217138 | 3.634271 | 0.18509835 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.3606630 | 5.087152 | 0.24124415 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.9130048 | 3.195028 | 0.16645080 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.5959230 | 1.984036 | 0.11032208 | 0.002 | 0.030 | . |
| Treatment.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 1.2747787 | 4.275366 | 0.21086503 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.6397330 | 2.913695 | 0.15405213 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 1.4575447 | 6.224524 | 0.28007456 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.3276169 | 1.412318 | 0.08111028 | 0.037 | 0.555 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 0.6463814 | 2.560441 | 0.13795154 | 0.001 | 0.015 | . |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.4796256 | 1.916520 | 0.10696943 | 0.002 | 0.030 | . |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 1.1305044 | 4.268317 | 0.21059061 | 0.001 | 0.015 | . |
6.3.4.2.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.01544 0.0154447 2.0972 999 0.158
Residuals 52 0.38294 0.0073643
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 6_Post-FMT2
1_Acclimation 0.161
6_Post-FMT2 0.15357
adonis2(formula=beta_div_neutral_post4$S ~ time_point*Population, data=post4[labels(beta_div_neutral_post4$S),], permutations=999,strata=post4$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 3.863228 | 0.229321 | 4.959284 | 0.001 |
| Residual | 50 | 12.983151 | 0.770679 | NA | NA |
| Total | 53 | 16.846379 | 1.000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_neutral_post4$S, post4_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.2316020 | 0.7712905 | 0.04598874 | 0.733 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.4015347 | 5.7562378 | 0.26457873 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 1.1746426 | 4.5564741 | 0.22165640 | 0.001 | 0.015 | . |
| Control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.5286441 | 1.9819408 | 0.11021840 | 0.002 | 0.030 | . |
| Control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 1.3443224 | 4.9104417 | 0.23483204 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 1.6347704 | 6.8326887 | 0.29925029 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 1.3540292 | 5.3398081 | 0.25022756 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.6311089 | 2.4041625 | 0.13063146 | 0.002 | 0.030 | . |
| Treatment.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 1.6125755 | 5.9825981 | 0.27215155 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.6202327 | 3.1519868 | 0.16457754 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 1.5701179 | 7.6327037 | 0.32297209 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.3634438 | 1.7083388 | 0.09647087 | 0.036 | 0.540 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 1.0227481 | 4.6483346 | 0.22511910 | 0.001 | 0.015 | . |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.5010202 | 2.2065321 | 0.12119453 | 0.001 | 0.015 | . |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 1.3619424 | 5.7710313 | 0.26507845 | 0.001 | 0.015 | . |
6.3.4.2.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.06978 0.069777 5.0345 999 0.018 *
Residuals 52 0.72071 0.013860
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 6_Post-FMT2
1_Acclimation 0.022
6_Post-FMT2 0.029131
adonis2(formula=beta_div_phylo_post4$S ~ time_point*Population, data=post4[labels(beta_div_phylo_post4$S),], permutations=999,strata=post4$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 0.757493 | 0.2376349 | 5.195124 | 0.001 |
| Residual | 50 | 2.430141 | 0.7623651 | NA | NA |
| Total | 53 | 3.187634 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_phylo_post4$S, post4_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.04186923 | 0.4391642 | 0.02671451 | 0.753 | 1.000 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.15609416 | 2.5546889 | 0.13768428 | 0.035 | 0.525 | |
| Control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.26322331 | 4.3060281 | 0.21205664 | 0.003 | 0.045 | . |
| Control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.16047895 | 2.5405742 | 0.13702781 | 0.037 | 0.555 | |
| Control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.25529510 | 4.0109138 | 0.20043631 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.23108846 | 4.0521838 | 0.20208192 | 0.002 | 0.030 | . |
| Treatment.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.36496892 | 6.3966666 | 0.28560797 | 0.001 | 0.015 | . |
| Treatment.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.22628210 | 3.8292220 | 0.19311005 | 0.018 | 0.270 | |
| Treatment.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.34830814 | 5.8463335 | 0.26761166 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.10002871 | 4.3836237 | 0.21505615 | 0.002 | 0.030 | . |
| Hot_control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.12577510 | 5.0601287 | 0.24027055 | 0.001 | 0.015 | . |
| Hot_control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.06334378 | 2.4997737 | 0.13512455 | 0.019 | 0.285 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 0.05927454 | 2.3820253 | 0.12958449 | 0.023 | 0.345 | |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.06906280 | 2.7224602 | 0.14541146 | 0.003 | 0.045 | . |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.11081709 | 4.0436561 | 0.20174244 | 0.001 | 0.015 | . |
6.3.4.2.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 1 0.00527 0.005269 0.1889 999 0.639
Residuals 52 1.45058 0.027896
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
1_Acclimation 6_Post-FMT2
1_Acclimation 0.646
6_Post-FMT2 0.66565
adonis2(formula=beta_div_func_post4$S ~ time_point*Population, data=post4[labels(beta_div_func_post4$S),], permutations=999,strata=post4$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 3 | 0.0773959 | 0.0417692 | 0.726498 | 0.266 |
| Residual | 50 | 1.7755477 | 0.9582308 | NA | NA |
| Total | 53 | 1.8529436 | 1.0000000 | NA | NA |
pairwise <- pairwise.adonis(beta_div_func_post4$S, post4_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.1_Acclimation vs Treatment.1_Acclimation | 1 | 0.0905830704 | 1.664628661 | 0.0942351347 | 0.227 | 1 | |
| Control.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.0861813922 | 1.634672780 | 0.0926965190 | 0.212 | 1 | |
| Control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.1197900330 | 2.213130846 | 0.1215129274 | 0.170 | 1 | |
| Control.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.1125623700 | 2.150784454 | 0.1184953995 | 0.169 | 1 | |
| Control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.0657004998 | 0.954588109 | 0.0563026423 | 0.258 | 1 | |
| Treatment.1_Acclimation vs Hot_control.1_Acclimation | 1 | 0.0010225901 | 0.054303886 | 0.0033825127 | 0.630 | 1 | |
| Treatment.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | -0.0005177706 | -0.025585400 | -0.0016016487 | 0.720 | 1 | |
| Treatment.1_Acclimation vs Control.6_Post-FMT2 | 1 | 0.0013301207 | 0.072110871 | 0.0044867082 | 0.617 | 1 | |
| Treatment.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.0060959077 | 0.174487757 | 0.0107878382 | 0.579 | 1 | |
| Hot_control.1_Acclimation vs Treatment.6_Post-FMT2 | 1 | 0.0010345754 | 0.055797964 | 0.0034752533 | 0.685 | 1 | |
| Hot_control.1_Acclimation vs Control.6_Post-FMT2 | 1 | -0.0001056284 | -0.006306177 | -0.0003942915 | 0.703 | 1 | |
| Hot_control.1_Acclimation vs Hot_control.6_Post-FMT2 | 1 | 0.0017235602 | 0.051851181 | 0.0032302306 | 0.764 | 1 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | -0.0080428882 | -0.442986255 | -0.0284750185 | 0.840 | 1 | |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | -0.0011796256 | -0.034047378 | -0.0021324990 | 0.895 | 1 | |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.0036300838 | 0.110487573 | 0.0068581148 | 0.690 | 1 |
beta_richness_nmds_post4 <- beta_div_richness_post4$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post4_nmds, by = c("sample" = "Tube_code"))
beta_neutral_nmds_post4 <- beta_div_neutral_post4$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post4_nmds, by = c("sample" = "Tube_code"))
beta_phylo_nmds_post4 <- beta_div_phylo_post4$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post4_nmds, by = join_by(sample == Tube_code))
beta_func_nmds_post4 <- beta_div_func_post4$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post4_nmds, by = join_by(sample == Tube_code))6.3.5 5. Are there differences between the control and the treatment group?
6.3.5.1 After 1 week –> Post-FMT1
post1 <- meta %>%
filter(time_point == "5_Post-FMT1")
post1.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(post1))]
identical(sort(colnames(post1.counts)),sort(as.character(rownames(post1))))
post1_nmds <- sample_metadata %>%
filter(time_point == "5_Post-FMT1")6.3.5.1.1 Number of samples used
[1] 26
6.3.5.1.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.017675 0.0088373 2.3825 999 0.107
Residuals 23 0.085312 0.0037092
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.0100000 0.672
Hot_control 0.0068795 0.213
Treatment 0.6248469 0.2084296
adonis2(formula=beta_div_richness_post1$S ~ Population+type, data=post1[labels(beta_div_richness_post1$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 1.195567 | 0.1448246 | 1.947534 | 0.001 |
| Residual | 23 | 7.059710 | 0.8551754 | NA | NA |
| Total | 25 | 8.255277 | 1.0000000 | NA | NA |
pairs Df SumsOfSqs F.Model R2 p.value p.adjusted sig
1 Control vs Treatment 1 0.5615418 1.729004 0.1033537 0.020 0.060
2 Control vs Hot_control 1 0.8438429 2.793772 0.1486541 0.001 0.003 *
3 Treatment vs Hot_control 1 0.3734921 1.268929 0.0779971 0.099 0.297
6.3.5.1.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.011001 0.0055005 0.6303 999 0.565
Residuals 23 0.200714 0.0087267
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.20000 0.956
Hot_control 0.21166 0.457
Treatment 0.95468 0.43604
adonis2(formula=beta_div_neutral_post1$S ~ Population+type, data=post1[labels(beta_div_neutral_post1$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 1.395968 | 0.1900228 | 2.697931 | 0.002 |
| Residual | 23 | 5.950350 | 0.8099772 | NA | NA |
| Total | 25 | 7.346318 | 1.0000000 | NA | NA |
pairs Df SumsOfSqs F.Model R2 p.value p.adjusted sig
1 Control vs Treatment 1 0.6051778 2.250849 0.13047758 0.021 0.063
2 Control vs Hot_control 1 1.0528902 4.143637 0.20570451 0.001 0.003 *
3 Treatment vs Hot_control 1 0.4150076 1.637268 0.09840968 0.052 0.156
6.3.5.1.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.00440 0.0021994 0.1369 999 0.916
Residuals 23 0.36941 0.0160614
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.92500 0.691
Hot_control 0.91505 0.784
Treatment 0.63312 0.73046
adonis2(formula=beta_div_phylo_post1$S ~ Population+type, data=post1[labels(beta_div_phylo_post1$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 0.0745104 | 0.0705947 | 0.8735033 | 0.547 |
| Residual | 23 | 0.9809570 | 0.9294053 | NA | NA |
| Total | 25 | 1.0554673 | 1.0000000 | NA | NA |
pairs Df SumsOfSqs F.Model R2 p.value p.adjusted sig
1 Control vs Treatment 1 0.01842535 0.4144162 0.02688498 0.767 1.000
2 Control vs Hot_control 1 0.05987967 1.7387847 0.09802164 0.108 0.324
3 Treatment vs Hot_control 1 0.03212966 0.6477782 0.04139746 0.710 1.000
6.3.5.1.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.00400 0.0019999 0.1431 999 0.881
Residuals 23 0.32135 0.0139717
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.64100 0.737
Hot_control 0.60188 0.857
Treatment 0.74597 0.84473
adonis2(formula=beta_div_func_post1$S ~ Population+type, data=post1[labels(beta_div_func_post1$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 0.1230554 | 0.1608583 | 2.204479 | 0.175 |
| Residual | 23 | 0.6419374 | 0.8391417 | NA | NA |
| Total | 25 | 0.7649929 | 1.0000000 | NA | NA |
pairs Df SumsOfSqs F.Model R2 p.value p.adjusted sig
1 Control vs Treatment 1 0.11954085 4.8476470 0.24424291 0.058 0.174
2 Control vs Hot_control 1 0.05258784 1.7730893 0.09976258 0.225 0.675
3 Treatment vs Hot_control 1 0.01298035 0.4430766 0.02869096 0.468 1.000
beta_richness_nmds_post1 <- beta_div_richness_post1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post1_nmds, by = join_by(sample == Tube_code))
beta_neutral_nmds_post1 <- beta_div_neutral_post1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post1_nmds, by = join_by(sample == Tube_code))
beta_phylogenetic_nmds_post1 <- beta_div_phylo_post1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post1_nmds, by = join_by(sample == Tube_code))
beta_functional_nmds_post1 <- beta_div_func_post1$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post1_nmds, by = join_by(sample == Tube_code))p0<-beta_richness_nmds_post1 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y = "NMDS2", x="NMDS1 \n Richness beta diversity") +
theme_classic() +
theme(legend.position="none")
p1<-beta_neutral_nmds_post1 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y = "NMDS2", x="NMDS1 \n Neutral beta diversity") +
theme_classic() +
theme(legend.position="none")
p2<-beta_phylogenetic_nmds_post1 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Phylogenetic beta diversity") +
theme_classic() +
theme(legend.position="none")
p3<-beta_functional_nmds_post1 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Functional beta diversity") +
theme_classic()+
theme(legend.position="none")6.3.5.2 After 2 weeks –>Post-FMT2
post2 <- meta %>%
filter(time_point == "6_Post-FMT2")
post2.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(post2))]
identical(sort(colnames(post2.counts)),sort(as.character(rownames(post2))))
post2_nmds <- sample_metadata %>%
filter(time_point == "6_Post-FMT2")6.3.5.2.1 Number of samples used
[1] 27
6.3.5.2.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.002011 0.0010056 0.1982 999 0.829
Residuals 24 0.121775 0.0050740
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.69200 0.770
Hot_control 0.67789 0.643
Treatment 0.79246 0.59820
adonis2(formula=beta_div_richness_post2$S ~ type, data=post2[labels(beta_div_richness_post2$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 1.504341 | 0.1967776 | 2.939822 | 0.001 |
| Residual | 24 | 6.140538 | 0.8032224 | NA | NA |
| Total | 26 | 7.644879 | 1.0000000 | NA | NA |
| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Treatment vs Control | 1 | 0.6463814 | 2.560441 | 0.1379515 | 0.001 | 0.003 | * |
| Treatment vs Hot_control | 1 | 0.4796256 | 1.916520 | 0.1069694 | 0.001 | 0.003 | * |
| Control vs Hot_control | 1 | 1.1305044 | 4.268317 | 0.2105906 | 0.001 | 0.003 | * |
6.3.5.2.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.008262 0.0041311 0.8024 999 0.434
Residuals 24 0.123559 0.0051483
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.44100 0.661
Hot_control 0.44675 0.230
Treatment 0.65989 0.25095
adonis2(formula=beta_div_neutral_post2$S ~ type, data=post2[labels(beta_div_neutral_post2$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 1.923807 | 0.2603795 | 4.224537 | 0.001 |
| Residual | 24 | 5.464666 | 0.7396205 | NA | NA |
| Total | 26 | 7.388473 | 1.0000000 | NA | NA |
| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Treatment vs Control | 1 | 1.0227481 | 4.648335 | 0.2251191 | 0.001 | 0.003 | * |
| Treatment vs Hot_control | 1 | 0.5010202 | 2.206532 | 0.1211945 | 0.002 | 0.006 | * |
| Control vs Hot_control | 1 | 1.3619424 | 5.771031 | 0.2650785 | 0.002 | 0.006 | * |
6.3.5.2.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.000407 0.0002034 0.0487 999 0.942
Residuals 24 0.100305 0.0041794
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.93700 0.829
Hot_control 0.93765 0.754
Treatment 0.83933 0.76015
adonis2(formula=beta_div_phylo_post2$S ~ type, data=post2[labels(beta_div_phylo_post2$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | 0.1594363 | 0.2042241 | 3.079623 | 0.001 |
| Residual | 24 | 0.6212564 | 0.7957759 | NA | NA |
| Total | 26 | 0.7806927 | 1.0000000 | NA | NA |
| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Treatment vs Control | 1 | 0.05927454 | 2.382025 | 0.1295845 | 0.027 | 0.081 | |
| Treatment vs Hot_control | 1 | 0.06906280 | 2.722460 | 0.1454115 | 0.003 | 0.009 | * |
| Control vs Hot_control | 1 | 0.11081709 | 4.043656 | 0.2017424 | 0.001 | 0.003 | * |
6.3.5.2.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.01259 0.0062962 0.3249 999 0.746
Residuals 24 0.46507 0.0193778
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.51300 0.626
Hot_control 0.45381 0.792
Treatment 0.57452 0.74365
adonis2(formula=beta_div_func_post2$S ~ type, data=post2[labels(beta_div_func_post2$S),], permutations=999) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 2 | -0.0037283 | -0.0054704 | -0.065288 | 0.924 |
| Residual | 24 | 0.6852623 | 1.0054704 | NA | NA |
| Total | 26 | 0.6815340 | 1.0000000 | NA | NA |
| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Treatment vs Control | 1 | -0.008042888 | -0.44298625 | -0.028475019 | 0.853 | 1 | |
| Treatment vs Hot_control | 1 | -0.001179626 | -0.03404738 | -0.002132499 | 0.888 | 1 | |
| Control vs Hot_control | 1 | 0.003630084 | 0.11048757 | 0.006858115 | 0.692 | 1 |
beta_richness_nmds_post2 <- beta_div_richness_post2$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post2_nmds, by = join_by(sample == Tube_code))
beta_neutral_nmds_post2 <- beta_div_neutral_post2$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post2_nmds, by = join_by(sample == Tube_code))
beta_phylogenetic_nmds_post2 <- beta_div_phylo_post2$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post2_nmds, by = join_by(sample == Tube_code))
beta_functional_nmds_post2 <- beta_div_func_post2$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post2_nmds, by = join_by(sample == Tube_code))p0<-beta_richness_nmds_post2 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y = "NMDS2", x="NMDS1 \n Richness beta diversity") +
theme_classic() +
theme(legend.position="none")
p1<-beta_neutral_nmds_post2 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y = "NMDS2", x="NMDS1 \n Neutral beta diversity") +
theme_classic() +
theme(legend.position="none")
p2<-beta_phylogenetic_nmds_post2 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Phylogenetic beta diversity") +
theme_classic() +
theme(legend.position="none")
p3<-beta_functional_nmds_post2 %>%
group_by(type) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Functional beta diversity") +
theme_classic()+
theme(legend.position="none")6.3.5.3 Post1 vs Post2
post5 <- meta %>%
filter(time_point == "6_Post-FMT2" | time_point == "5_Post-FMT1")
post5.counts <- temp_genome_counts[,which(colnames(temp_genome_counts) %in% rownames(post5))]
identical(sort(colnames(post5.counts)),sort(as.character(rownames(post5))))
post5_nmds <- sample_metadata %>%
filter(time_point == "6_Post-FMT2"| time_point == "5_Post-FMT1")6.3.5.3.1 Number of samples used
[1] 53
6.3.5.3.2 Richness
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.01841 0.0092048 1.7364 999 0.171
Residuals 50 0.26505 0.0053010
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.027000 0.724
Hot_control 0.039117 0.211
Treatment 0.716358 0.218648
adonis2(formula=beta_div_richness_post5$S ~ type*time_point, data=post5[labels(beta_div_richness_post5$S),], permutations=999,strata=post5$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 3.261916 | 0.1981463 | 2.322836 | 0.004 |
| Residual | 47 | 13.200248 | 0.8018537 | NA | NA |
| Total | 52 | 16.462165 | 1.0000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_richness_post5$S,post5_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.5615418 | 1.729004 | 0.10335366 | 0.016 | 0.240 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.8438429 | 2.793772 | 0.14865413 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.7628135 | 2.683925 | 0.14364890 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.3432605 | 1.148733 | 0.06698647 | 0.272 | 1.000 | |
| Control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 1.1269580 | 3.799256 | 0.19188884 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.3734921 | 1.268929 | 0.07799710 | 0.107 | 1.000 | |
| Treatment.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.3571397 | 1.297184 | 0.07959561 | 0.123 | 1.000 | |
| Treatment.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.7769467 | 2.670898 | 0.15114670 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.6502360 | 2.253407 | 0.13060650 | 0.001 | 0.015 | . |
| Hot_control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.4132091 | 1.616138 | 0.09174188 | 0.003 | 0.045 | . |
| Hot_control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 1.0163992 | 3.760571 | 0.19030682 | 0.001 | 0.015 | . |
| Hot_control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.2732563 | 1.019281 | 0.05988979 | 0.433 | 1.000 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 0.6463814 | 2.560441 | 0.13795154 | 0.001 | 0.015 | . |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.4796256 | 1.916520 | 0.10696943 | 0.001 | 0.015 | . |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 1.1305044 | 4.268317 | 0.21059061 | 0.001 | 0.015 | . |
6.3.5.3.3 Neutral
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.01992 0.0099587 1.565 999 0.219
Residuals 50 0.31818 0.0063636
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.11200 0.872
Hot_control 0.10701 0.187
Treatment 0.87156 0.17449
adonis2(formula=beta_div_neutral_post5$S ~ type*time_point, data=post5[labels(beta_div_neutral_post5$S),], permutations=999,strata=post5$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 3.947979 | 0.2569798 | 3.251069 | 0.002 |
| Residual | 47 | 11.415016 | 0.7430202 | NA | NA |
| Total | 52 | 15.362995 | 1.0000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_neutral_post5$S,post5_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.6051778 | 2.250849 | 0.13047758 | 0.017 | 0.255 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 1.0528902 | 4.143637 | 0.20570451 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.8908158 | 3.714692 | 0.18842252 | 0.001 | 0.015 | . |
| Control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.3860927 | 1.552176 | 0.08843210 | 0.102 | 1.000 | |
| Control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 1.3122237 | 5.130273 | 0.24279254 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.4150076 | 1.637268 | 0.09840968 | 0.057 | 0.855 | |
| Treatment.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.3157079 | 1.325203 | 0.08117526 | 0.167 | 1.000 | |
| Treatment.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 1.0579520 | 4.270010 | 0.22158835 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.7454015 | 2.920049 | 0.16294873 | 0.002 | 0.030 | . |
| Hot_control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.4377161 | 1.942126 | 0.10824392 | 0.005 | 0.075 | |
| Hot_control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 1.3766597 | 5.875279 | 0.26858075 | 0.001 | 0.015 | . |
| Hot_control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.3176516 | 1.316137 | 0.07600637 | 0.157 | 1.000 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 1.0227481 | 4.648335 | 0.22511910 | 0.001 | 0.015 | . |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.5010202 | 2.206532 | 0.12119453 | 0.001 | 0.015 | . |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 1.3619424 | 5.771031 | 0.26507845 | 0.001 | 0.015 | . |
6.3.5.3.4 Phylogenetic
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.00051 0.0002543 0.0265 999 0.974
Residuals 50 0.47996 0.0095993
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.90600 0.838
Hot_control 0.88926 0.922
Treatment 0.82391 0.91902
adonis2(formula=beta_div_phylo_post5$S ~ type*time_point, data=post5[labels(beta_div_phylo_post5$S),], permutations=999,strata=post5$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 0.3518222 | 0.180049 | 2.0641 | 0.042 |
| Residual | 47 | 1.6022134 | 0.819951 | NA | NA |
| Total | 52 | 1.9540356 | 1.000000 | NA | NA |
pairwise<-pairwise.adonis(beta_div_phylo_post5$S,post5_arrange$type_time, perm=999)
pairwise%>%
tt()| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.01842535 | 0.4144162 | 0.02688498 | 0.759 | 1.000 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.05987967 | 1.7387847 | 0.09802164 | 0.114 | 1.000 | |
| Control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.07917244 | 3.0180046 | 0.15869197 | 0.003 | 0.045 | . |
| Control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.04335491 | 1.5335604 | 0.08746429 | 0.199 | 1.000 | |
| Control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.10783045 | 3.7500438 | 0.18987521 | 0.001 | 0.015 | . |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.03212966 | 0.6477782 | 0.04139746 | 0.688 | 1.000 | |
| Treatment.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.06393539 | 1.5651817 | 0.09448624 | 0.132 | 1.000 | |
| Treatment.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.05265949 | 1.2240203 | 0.07544494 | 0.305 | 1.000 | |
| Treatment.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.09753501 | 2.2402429 | 0.12994265 | 0.010 | 0.150 | |
| Hot_control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.07228545 | 2.3279593 | 0.12701683 | 0.040 | 0.600 | |
| Hot_control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.11759094 | 3.5538444 | 0.18174658 | 0.001 | 0.015 | . |
| Hot_control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.06667255 | 1.9859527 | 0.11041687 | 0.096 | 1.000 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | 0.05927454 | 2.3820253 | 0.12958449 | 0.032 | 0.480 | |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.06906280 | 2.7224602 | 0.14541146 | 0.004 | 0.060 | |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.11081709 | 4.0436561 | 0.20174244 | 0.002 | 0.030 | . |
6.3.5.3.5 Functional
Permutation test for homogeneity of multivariate dispersions
Permutation: free
Number of permutations: 999
Response: Distances
Df Sum Sq Mean Sq F N.Perm Pr(>F)
Groups 2 0.00785 0.0039232 0.2322 999 0.815
Residuals 50 0.84483 0.0168966
Pairwise comparisons:
(Observed p-value below diagonal, permuted p-value above diagonal)
Control Hot_control Treatment
Control 0.53000 0.609
Hot_control 0.52384 0.861
Treatment 0.58787 0.85068
adonis2(formula=beta_div_func_post5$S ~ type*time_point, data=post5[labels(beta_div_func_post5$S),], permutations=999,strata=post5$individual) %>%
as.matrix() %>%
kable()| Df | SumOfSqs | R2 | F | Pr(>F) | |
|---|---|---|---|---|---|
| Model | 5 | 0.1076682 | 0.075037 | 0.7625685 | 0.473 |
| Residual | 47 | 1.3271997 | 0.924963 | NA | NA |
| Total | 52 | 1.4348679 | 1.000000 | NA | NA |
| pairs | Df | SumsOfSqs | F.Model | R2 | p.value | p.adjusted | sig |
|---|---|---|---|---|---|---|---|
| Control.5_Post-FMT1 vs Treatment.5_Post-FMT1 | 1 | 0.1195408549 | 4.84764704 | 0.2442429086 | 0.075 | 1 | |
| Control.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.0525878365 | 1.77308932 | 0.0997625840 | 0.226 | 1 | |
| Control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.0265995825 | 1.17541806 | 0.0684360667 | 0.311 | 1 | |
| Control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.0145818992 | 0.69975992 | 0.0419023938 | 0.408 | 1 | |
| Control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | -0.0080695208 | -0.21617323 | -0.0136958691 | 0.916 | 1 | |
| Treatment.5_Post-FMT1 vs Hot_control.5_Post-FMT1 | 1 | 0.0129803540 | 0.44307662 | 0.0286909552 | 0.462 | 1 | |
| Treatment.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | 0.0267162134 | 1.22560581 | 0.0755352882 | 0.297 | 1 | |
| Treatment.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.0384388433 | 1.93281582 | 0.1141461550 | 0.231 | 1 | |
| Treatment.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | 0.0553988290 | 1.47819391 | 0.0897060633 | 0.241 | 1 | |
| Hot_control.5_Post-FMT1 vs Treatment.6_Post-FMT2 | 1 | -0.0040061386 | -0.14850469 | -0.0093684974 | 0.718 | 1 | |
| Hot_control.5_Post-FMT1 vs Control.6_Post-FMT2 | 1 | 0.0024023972 | 0.09538980 | 0.0059265296 | 0.617 | 1 | |
| Hot_control.5_Post-FMT1 vs Hot_control.6_Post-FMT2 | 1 | -0.0004960759 | -0.01190328 | -0.0007445087 | 0.842 | 1 | |
| Treatment.6_Post-FMT2 vs Control.6_Post-FMT2 | 1 | -0.0080428882 | -0.44298625 | -0.0284750185 | 0.822 | 1 | |
| Treatment.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | -0.0011796256 | -0.03404738 | -0.0021324990 | 0.917 | 1 | |
| Control.6_Post-FMT2 vs Hot_control.6_Post-FMT2 | 1 | 0.0036300838 | 0.11048757 | 0.0068581148 | 0.696 | 1 |
beta_richness_nmds_post5 <- beta_div_richness_post5$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post5_nmds, by = join_by(sample == Tube_code))
beta_neutral_nmds_post5 <- beta_div_neutral_post5$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post5_nmds, by = join_by(sample == Tube_code))
beta_phylogenetic_nmds_post5 <- beta_div_phylo_post5$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post5_nmds, by = join_by(sample == Tube_code))
beta_functional_nmds_post5 <- beta_div_func_post5$S %>%
metaMDS(.,trymax = 500, k=2, verbosity=FALSE) %>%
scores() %>%
as_tibble(., rownames = "sample") %>%
left_join(post5_nmds, by = join_by(sample == Tube_code))p0<-beta_richness_nmds_post5 %>%
group_by(type, time_point) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type, shape=time_point)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y = "NMDS2", x="NMDS1 \n Richness beta diversity") +
theme_classic() +
theme(legend.position="none")
p1<-beta_neutral_nmds_post5 %>%
group_by(type, time_point) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type, shape=time_point, label=sample)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
geom_text()
labs(y = "NMDS2", x="NMDS1 \n Neutral beta diversity") +
theme_classic() +
theme(legend.position="none")
p2<-beta_phylogenetic_nmds_post5 %>%
group_by(type, time_point) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type, shape=time_point)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Phylogenetic beta diversity") +
theme_classic() +
theme(legend.position="none")
p3<-beta_functional_nmds_post5 %>%
group_by(type, time_point) %>%
mutate(x_cen = mean(NMDS1, na.rm = TRUE)) %>%
mutate(y_cen = mean(NMDS2, na.rm = TRUE)) %>%
ungroup() %>%
ggplot(., aes(x=NMDS1,y=NMDS2, color=type, shape=time_point)) +
scale_color_manual(name="Type",
breaks=c("Control", "Hot_control", "Treatment"),
labels=c("Cold-Cold", "Hot-Hot", "Cold-Hot"),
values=c("#4477AA","#d57d2c","#76b183")) +
geom_point(size=2) +
geom_segment(aes(x=x_cen, y=y_cen, xend=NMDS1, yend=NMDS2), alpha=0.2) +
labs(y= element_blank (), x="NMDS1 \n Functional beta diversity") +
theme_classic()+
theme(legend.position="none")